package models

import "github.com/gorilla/websocket"

type NodeData struct {
	NodeType string                 `json:"nodeType"`
	Id       int64                  `json:"id"`
	Stat     string                 `json:"stat"` //是否已经编辑
	Md5      string                 `json:"md5"`
	Data     map[string]interface{} `json:"data"`
}

type ExcelData struct {
	OriginRow []string          `json:"originRow"`
	Row       map[string]string `json:"row"`
}

type SerialMeta struct {
	NodeType  string             `json:"NodeType"`
	Columns   []SerialMetaColumn `json:"columns"`
	DataLine  int                `json:"dataLine"`
	TbHeaders [][]string         `json:"tbHeaders"`
}

type SerialMetaColumn struct {
	NodeType string `json:"nodeType"`
	Name     string `json:"name"`
	TbField  string `json:"tbField"`
	Type     string `json:"type"`
	Required bool   `json:"required"`
	Items    any    `json:"items"`
	Encode   any    `json:"encode"`
	Decode   any    `json:"decode"`
}

type PageLogicMeta struct {
	Key string `json:"key"`
}

type SerialHandleCtx struct {
	Column     *SerialMetaColumn
	ExcelRow   *ExcelData
	DbRow      *NodeData
	ResultData any
}

type PageLogicHandleCtx struct {
	Meta    *PageLogicMeta
	Data    map[string]interface{}
	Channel chan XMessage
	Client  *websocket.Conn
}

type XMessage struct {
	Uuid        string       `json:"uuid"`
	MessageType string       `json:"messageType"`
	MessageData XMessageData `json:"messageData"`
}

type XMessageData struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Data    any    `json:"data"`
}
